package com.yict.csms.system.service;

import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;

import com.yict.common.service.IBaseService;
import com.yict.csms.system.dao.IDataDictDao;
import com.yict.csms.system.entity.DataDict;

public interface IDataDictService extends IBaseService<DataDict,String,IDataDictDao> {
	
	/**
	 * 查询数据字典
	 * @param type
	 * @return
	 */
	public List<DataDict> queryByType(String type);

	/**
	 * 根据code查找一个字典，没找到返回null
	 * @param code
	 * @return
	 */
	public DataDict findByCode(String code);
	
	/**
	 * 根据displayname和datatype查找一个字典，没找到返回null
	 * @param name
	 * @param type
	 * @return
	 */
	public DataDict findByName(String name,String type);
	
	/**
	 * 查询一个主键名称映射
	 * @param type
	 * @return
	 */
	public LinkedHashMap<String,String> queryDictMap(String type);
	
	/**
	 * 获取指定日期的更次
	 * @param date
	 * @return
	 */
	public DataDict findShiftTime(Date date);

	/**
	 * 获取指定日期的下一更次
	 * @param date
	 * @param cycle true 则对于一天的最后一更时间返回第一更，否则返回null值
	 * @return
	 */
	DataDict findNextShiftTime(Date date, boolean cycle);
}
